require("commfuncs")
require("wowdummyapi")
require("Util")
require("fiber")
require("macro")

-- for k, v in pairs(Stage) do
-- 	print(k, v)
-- end

assert(Stage.Null == 0)
print('CreatEnumTable pass')



-- test fiber
assert(stage == Stage.Start)
assert(1 == Stage.Start)
ut.onUpdate()
ut.onUpdate()
ut.onUpdate()
assert(stage == Stage.Start)
-- co('stage', Stage.Attack)
ut.attack()
assert(stage == Stage.Attack)
ut.onUpdate()
ut.onUpdate()
-- co('stage', Stage.StopAfterCast)
ut.sfstart('chong feng')
assert(stage == Stage.StartAfterCast)
ut.onUpdate()
assert(lastCastedSpell == 'chong feng')
ut.onUpdate()
ut.onUpdate()
ut.onSpell('chong feng')
assert(stage == Stage.Attack)
ut.onUpdate()
ut.onUpdate()
ut.stop()
assert(stage == Stage.Start)
ut.onUpdate()
ut.onUpdate()

ut.sfstop('zhan sha')
assert(stage == Stage.StopAfterCast)
ut.onUpdate()
assert(lastCastedSpell == 'zhan sha')
ut.onUpdate()
ut.onSpell('zhan sha')
assert(stage == Stage.Start)

ut.aoe()
assert(stage == Stage.Aoe)
ut.onUpdate()
ut.onUpdate()

ut.interrupt()

print('fiber pass')

-- test macro
local s = _gen_macro('xxx')
local ss = [[
#showtooltip xxx
/run ut.sfstart('xxx')
]]
assert(s == ss)
